/*(C) Copyright

    This file is part of widget Meteoclimatic.
    Autor: Antonio Cristóbal Álvarez Abellán -> acabellan@gmail.com
    
    */

package deeloco.android.meteoclimatic.donate;

/**
 * Clase que describe los datos meteorológico que nos podemos encontrar en una estación
 * @author Antonio Cristóbal Álvarez Abellán
 *
 */

public class datosMeteorologicos {

	static final String TEMPERATURA="T";
	static final String HUMEDAD="H";
	static final String PRESION="B";
	static final String PRECIPITACION="P";
	static final String VIENTO="W";
	static final String DIRECCION="D";
	
	/**
	 * Temperatura
	 */
	double T;
	/**
	 * Temperatura Máxima
	 */
	double Tmax;
	/**
	 * Temperatua Mínima
	 */
	double Tmin;
	/**
	 * Humedad
	 */
	double H;
	/**
	 * Humedad Máxima
	 */
	double Hmax;
	/**
	 * Humedad Mínima
	 */
	double Hmin;
	/**
	 * Barómetro (Presión atmosférica)
	 */
	double B;
	/**
	 * Barómetro Máximo
	 */
	double Bmax;
	/**
	 * Barómetro Mínimo
	 */
	double Bmin;
	/**
	 * Wind (Viento)
	 */
	double W;
	/**
	 * Viento Máximo
	 */
	double Wmax;
	/**
	 * Precipitación
	 */
	double P;
	
	/**
	 * Dirección del viento
	 */
	double D;
	
	/**
	 * Fecha de la toma de los datos 
	 */
	String fecha;
	
	/**
	 * Hora en que se tomaron los datos
	 */
	String hora;
	
	/**
	 * Si los datos meteorológicos estan activos o no. Es decir, si se han capturado correctamente o no.
	 */
	boolean activa;
	
	/**
	 * Nombre del icono que identifica el estado del cielo.
	 */
	String estadoCielo;
	
	
	public datosMeteorologicos()
	{
		this.B=0.0;
		this.Bmax=0.0;
		this.Bmin=0.0;
		this.H=0.0;
		this.Hmax=0.0;
		this.Hmin=0.0;
		this.P=0.0;
		this.T=0.0;
		this.Tmax=0.0;
		this.Tmin=0.0;
		this.W=0.0;
		this.Wmax=0.0;
		this.D=0.0;
		this.estadoCielo="sun";
	}
	
	/**
	 * Convierte el atributo D (Dirección del viento, en grados) en puntos cardinales (N,S,E,W).
	 * @return
	 * String con los puntos cardinales 
	 */
	public String getDirViento()
	{
		if ((this.D>337.5)||(this.D<22.5)) return "N";
		if ((this.D>22.5)&&(this.D<67.5)) return "NE";
		if ((this.D>67.5)&&(this.D<112.5)) return "E";
		if((this.D>112.5)&&(this.D<157.5)) return "SE";
		if((this.D>157.5)&&(this.D<202.5)) return "S";
		if((this.D>202.5)&&(this.D<247.5)) return "SO";
		if((this.D>247.5)&&(this.D<292.5)) return "O";
		if((this.D>292.5)&&(this.D<337.5)) return "NO";

		return "";

	}

}
